﻿



/////////////////////////////////////////////////////////////////////////////////
///              ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO                   ///
///                        PROYECTO INTEGRADOR IV                             /// 
///                         PROYECTO SICOPS 2011                              /// 
/// ------------------------------------------------------------------------- ///  
///              **********GRUPO DE DESARROLLADORES**********                 ///
///                    ************PEGASO*************                        /// 
///---------------------------------------------------------------------------///
///                                                         RIOBAMBA-ECUADOR  ///
///---------------------------------------------------------------------------///
///                CLASE PARA LA ADMINISTRACION DE CUENTAS                    ///
/////////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System.Data.Common;
using System.Drawing;
//Clase para la administracion de cuentas creacion y modificacion

namespace ClasesDeAcceso
{
    public class clsAdministracion
    {
        private SqlCommand SqlProSeleccionar;
        private SqlConnection SqlProConexion;
        private SqlCommand SqlProInsertar;
        private SqlDataAdapter SqlProAdaptador;

        //Metodos de eliminacion de cuentas
        public void metConfEliminarCuentas(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_EliminarCuentas";
            this.SqlProSeleccionar.CommandType = System.Data.CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null),
            new SqlParameter("@Codigo", SqlDbType.VarChar, 20)});
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
        }

        public void metActivarEliminraCuenta(string Codigo)
        {
            SqlProAdaptador.SelectCommand.Parameters["@Codigo"].Value = Codigo;//Imgen de la cuenta
            SqlProConexion.Open();
            try//Muestra el mensaje que esta en el procedimiento almacenado
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();//Ejecutar el procedimiento 
            }
            catch (Exception auxMensaje)//El procedimiento tiene un mensaje que imprime si la clave es cambiada con exito
            {
                MessageBox.Show(auxMensaje.Message);
            }
            SqlProConexion.Close();
        }


        //Parametros que se utilizaran en los llamados a la base de datos

        public void metConfiguracionInsertarPro(string Conexion)
        {
            //Este es el metodo que actualiza el llamado al procedimiento almacenado

            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProInsertar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();

            //Coneccion a la base de datos con la direccion del servidor 

            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_InsertarAdmin";//Procedimiento encontrado en la base de datos
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NomCuen", SqlDbType.VarChar, 15),
            new SqlParameter("@Clave", SqlDbType.VarChar, 15),
            new SqlParameter("@NomUsua", SqlDbType.VarChar, 30),
            new SqlParameter("@Apellido", SqlDbType.VarChar, 30),
            new SqlParameter("@Tipo", SqlDbType.VarChar, 20),
            new SqlParameter("@Palabra",SqlDbType.VarChar, 30),
            new SqlParameter("@FecCreacion", SqlDbType.DateTime, 8),
            new SqlParameter("@Estado", SqlDbType.VarChar, 30),
            new SqlParameter("@Observacion",SqlDbType.VarChar, 100),
            new SqlParameter("@Imagen", SqlDbType.Image, 2147483647)});
           
            // 

            //Asignacion del metodo seleccionar al adaptador
            //El metodo de selecciones donde se le inicializa al procedimiento almacenado
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;

        }

        public void metLlamadoProc(string NomCuen, string Clave, string NomUsua, string Apellido, string Tipo, string Palabra, string FechaActu, string Estado, string Observacion,byte[] Imagen)
        {
            try
            {

                //COMENTARIO
                //Luego de que ya esta actualizada la llamada al procedimiento almacenado se le procede
                //a ejecutarlo con la palabra parameters se le hace un llamado a lo parametro del procedimiento
                // y con la palabra ExecuteNonQuery lo ejecutamos como si lo estuviera haciendo desde el 
                //administrador corportivo....

                SqlProAdaptador.SelectCommand.Parameters["@NomCuen"].Value = NomCuen;//Nombre de la cuenta
                SqlProAdaptador.SelectCommand.Parameters["@Clave"].Value = Clave;//Clve del acuenta
                SqlProAdaptador.SelectCommand.Parameters["@NomUsua"].Value = NomUsua;//Nombre del usuario
                SqlProAdaptador.SelectCommand.Parameters["@Apellido"].Value = Apellido;//Apellido del usuario
                SqlProAdaptador.SelectCommand.Parameters["@Tipo"].Value = Tipo;//Tipo decuenta
                SqlProAdaptador.SelectCommand.Parameters["@Palabra"].Value = Palabra;//Palabra secreta
                SqlProAdaptador.SelectCommand.Parameters["@FecCreacion"].Value = FechaActu;//Fecha de creacion
                SqlProAdaptador.SelectCommand.Parameters["@Estado"].Value = Estado;//estado
                SqlProAdaptador.SelectCommand.Parameters["@Observacion"].Value = Observacion;//Observaciones de la cuenta en un 
                SqlProAdaptador.SelectCommand.Parameters["@Imagen"].Value = Imagen;//Imgen de la cuenta
                SqlProConexion.Open();//Abrir la coneccion
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();//Ejecuta el procedmiento almacenado
                SqlProConexion.Close();//Es importante cerrar la coneccion para evitar embotellamientos

            }
            catch (Exception mas)
            {
                MessageBox.Show(mas.Message);
            }
        }

        public void metAdministrarCuenta(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();

            //Comentario
            //Inicializacion del acceso a la tabla de las cuentas
            //se utiliza los mismos parametros establecidos al inicio por eso se debe declarar el inicio de la 
            //funcion en cada uno de los llamados a la base de datos

            this.SqlProConexion.ConnectionString = Conexion;
            // 
            //Configuracion del procedimiento llamdo desde la aplicacion
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_TipodeCuenta";//Nombre del procedimiento
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            //Parametro de control
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NomCuenta", SqlDbType.VarChar, 15),
            new SqlParameter("@ClaveCuenta", SqlDbType.VarChar, 15),
            new SqlParameter("@auxTipo", SqlDbType.VarChar, 20, ParameterDirection.InputOutput, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null)});
            // 
            // configuracion del Adaptador
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
            // 
            // SqlProConexion
            // 

        }

        public string metBuscarTipoAdm(string NomCuent, string ClaveCuen)
        {

            //En el parametro de salida del procedimiento que esta en la Base(dbo.sp_TipodeCuenta")
            //se le a colocado el tipo de cuenta con el ingreso del nombre y de la clave 
            //si la cuenta no exite error en el ingreso o simplemente no esta registrado
            string auxTipo;
            SqlProAdaptador.SelectCommand.Parameters["@NomCuenta"].Value = NomCuent;//Nombre de la cuenta
            SqlProAdaptador.SelectCommand.Parameters["@ClaveCuenta"].Value = ClaveCuen;//Tipo de la cuenta
            SqlProAdaptador.SelectCommand.Parameters["@auxTipo"].Value = ""; 
            //Declaracion de un parametro de ingreso nulo
            SqlProConexion.Open();
            SqlProAdaptador.SelectCommand.ExecuteNonQuery();
            SqlProConexion.Close();
            auxTipo = (string)(SqlProAdaptador.SelectCommand.Parameters["@auxTipo"].Value);
            return auxTipo;
            //retorno del tipo de usuario que va a acceder a la aplicacion


        }

        public void metMostrarDatos(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // 
            // SqlProSelecionar
            // 
            this.SqlProSeleccionar.CommandText = "SELECT     vs_MostrartAdminis.*\r\nFROM         vs_MostrartAdminis";
            //En esta parte del codigo se implemento una vista que se encuentra programada en 
            //el motor de base de datos
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            //Configuracion del adaptador de datos
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;    
          
        }

        public void metActivaMostrarD(LogisticaDeAcceso.ColeccionDeDatos varIngreso)
        {
            SqlProAdaptador.Fill(varIngreso.tAdministracion);//Activacion del dataset que en este 
            //caso se llama CONFIGURACIONDEDATOS
        }

        public void metActualizarEstado(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProSeleccionar
            // 
            //Para ejcutar el cambio de estado de las cuentas se necesita configuracion de los parametros
            //Aqui configuramos los parametro ya declarados en la parte superior
            this.SqlProSeleccionar.CommandText = "dbo.sp_ActualizarEstado_tAdmin";//Nombre del procedimiento
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NombreCuenta", SqlDbType.VarChar, 30),
            new SqlParameter("@EstadoCuenta", SqlDbType.VarChar, 30),
            new SqlParameter("@ObservCuenta", SqlDbType.VarChar, 50),
            new SqlParameter("@FecInactividad", SqlDbType.DateTime, 8)});
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
            // 
      
        }

        public void metEjecutarActualizadorEs(string NombreCuenta,string NueEstado,string Observacion,string Nom)
        {
            //En este metodo se ejecuta el procedimiento almacenado que ya esta configurado en la parte superior de este metodo
            //este metodo controla la modificacion del estado cuando pasa de activo a inactivo
            SqlProAdaptador.SelectCommand.Parameters["@NombreCuenta"].Value = NombreCuenta;
            SqlProAdaptador.SelectCommand.Parameters["@EstadoCuenta"].Value = NueEstado;
            //Control de las observaciones sobre los cambios de estados
            if (NueEstado == "Inactivo")
            {
                if (Observacion == "")
                    SqlProAdaptador.SelectCommand.Parameters["@ObservCuenta"].Value = "\n Cuenta deshabilitada por "+Nom+"."+"\nLa cuenta se a deshabilitado sin ninguna observacion.";
                else
                    SqlProAdaptador.SelectCommand.Parameters["@ObservCuenta"].Value = Observacion+"\n Cuenta deshabilitada por "+Nom+".";
            }
            else
                SqlProAdaptador.SelectCommand.Parameters["@ObservCuenta"].Value ="Cuenta habilitada por "+Nom+","+" en ";
            SqlProAdaptador.SelectCommand.Parameters["@FecInactividad"].Value = DateTime.Now;
            //Ejecucion del procedimiento almacenado 
            SqlProConexion.Open();//Abrir coneccion
            try
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();
            }
            catch(Exception men)
            {
                MessageBox.Show(men.Message);
            }
            SqlProConexion.Close();//Siempre se debe cerrar la coneccion


        }

        public void metCambiarContraseña(string Conexion)
        {

            //Declaracion del procedimiento almacenado para el cambio de contraseñas
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_CambiarContraseña";//Nombre del procedimiento
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NombreCuenta", SqlDbType.VarChar, 30),
            new SqlParameter("@ClaveActual", SqlDbType.VarChar, 15),
            new SqlParameter("@ClaveNueva", SqlDbType.VarChar, 15)});
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
          
        }

        public void metEjecutarCambiarContra(string NombreCuenta,string ContraActual,string NuevaContra)
        {
            //Este metodo esta diseñado para que el usuario pueda cambiar la contraseña
            //aqui se ejecuta el procedimiento almacenado
          
                SqlProAdaptador.SelectCommand.Parameters["@NombreCuenta"].Value = NombreCuenta;
                SqlProAdaptador.SelectCommand.Parameters["@ClaveActual"].Value = ContraActual;
                SqlProAdaptador.SelectCommand.Parameters["@ClaveNueva"].Value = NuevaContra;
                SqlProConexion.Open();
                 try//Muestra el mensaje que esta en el procedimiento almacenado
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();//Ejecutar el procedimiento 
            }
                 catch (Exception auxMensaje)//El procedimiento tiene un mensaje que imprime si la clave es cambiada con exito
                 {
                     MessageBox.Show(auxMensaje.Message);
                 }
                SqlProConexion.Close();
        
        }

        public void metBuscarClave(string Conexion)
        {
            //Declaracion del procedimiento almacenado para el cambio de contraseñas
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();

            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_BuscarContraseña";//Nombre del procedimiento
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NombreCuenta", SqlDbType.VarChar, 30),
            new SqlParameter("@Palabra", SqlDbType.VarChar, 30),
            new SqlParameter("@Clave", SqlDbType.VarChar, 15, ParameterDirection.InputOutput, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),//Variables de entrada y salida
            new SqlParameter("@Observacion", SqlDbType.VarChar, 50, ParameterDirection.InputOutput, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null)});//Variables de entrada y salida
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
            // 
         
        }
        public String[] metEjecutarBuscarClave(string NombreCuenta,string Palabra, string Clave, string Observaciones)
        {
      
            //Ejecucion del porcedimiento almacenado para buscar una clave olvidada
          
                SqlProAdaptador.SelectCommand.Parameters["@NombreCuenta"].Value = NombreCuenta;
                SqlProAdaptador.SelectCommand.Parameters["@Palabra"].Value = Palabra;
                SqlProAdaptador.SelectCommand.Parameters["@Clave"].Value = "";
                SqlProAdaptador.SelectCommand.Parameters["@Observacion"].Value = "";
                //Declaracion de un parametro de ingreso nulo
                SqlProConexion.Open();
                try
                {
                    SqlProAdaptador.SelectCommand.ExecuteNonQuery();//El procedimiento tiene un mensaje que imprime si la clave es cambiada con exito
                }
                catch (Exception Mensaje)
                {
                    MessageBox.Show(Mensaje.Message);
                }
                SqlProConexion.Close();
                Clave = (string)(SqlProAdaptador.SelectCommand.Parameters["@Clave"].Value);
                Observaciones = (string)(SqlProAdaptador.SelectCommand.Parameters["@Observacion"].Value);
                String[] auxColeccion = { Clave,Observaciones};//Variable que contiene una coleccion de datos
                                                               //esto se realiza porque el procedimiento vota 2 parametros como resultados
                return auxColeccion;
          
        
        }

        public void metCambiarNombre(string Conexion)
        {
            //declaracion del procedimiento almacenado para cambiar dl nombre de la cuenta de usuario
           
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();

            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;

            this.SqlProSeleccionar.CommandText = "dbo.sp_CambioNombre";//Nombre del procedimiento
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@Nombre", SqlDbType.VarChar, 30),
            new SqlParameter("@NuevoNombre", SqlDbType.VarChar, 30)});
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
            // 
        
        }
        //Cambiar de nombre de cuenta
        public string metEjecutarCambioNombre(string Nombre, string NuevoNombre)
        {
            string Mas = "";
            SqlProAdaptador.SelectCommand.Parameters["@Nombre"].Value = Nombre;//Nombre actual
            SqlProAdaptador.SelectCommand.Parameters["@NuevoNombre"].Value = NuevoNombre;//Nuevo nombre
            SqlProConexion.Open();
            try
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();
            }
            catch (Exception Mensaje)
            {
                if (Mensaje.Message == "Nuevo nombre de cuenta asignado exitosamente.")
                {
                    MessageBox.Show("         "+Mensaje.Message + "\n Para que los cambios tengan efecto debe reiniciar la cuenta");
                    Mas= "Cerrar";
                }
            }
            SqlProConexion.Close();
            return Mas;
        }

        public void metCambiarImagen(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();

            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_CambiarImagen";//Llamado al procedimiento almacenado para cambiar de imagen
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NomCuenta", SqlDbType.VarChar, 30),
            new SqlParameter("@Imagen", SqlDbType.Image, 2147483647)});
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
            // 
           
         }
        //Cambiar la imagen de la cuenta
        public void ejcCambiarImagen(string NomCuenta, byte[] Imagen)
        {
            SqlProAdaptador.SelectCommand.Parameters["@NomCuenta"].Value = NomCuenta;//Nomnre de la cuenta 
            SqlProAdaptador.SelectCommand.Parameters["@Imagen"].Value = Imagen;//nueva imagen
            SqlProConexion.Open();
            try
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();
            }
            catch (Exception Mensaje)
            {
                MessageBox.Show(Mensaje.Message);
            }
            SqlProConexion.Close();

        }   

        //Configuracion del la imagen
        public void metMostrarImg(string Conexion)
    {

            //Este metodo llama a una vista para uso de clientes con el permiso de administradores
            //puede alterarse cualquiera de las imagenes de la cuenta registrada
        this.SqlProSeleccionar = new SqlCommand();
        this.SqlProConexion = new SqlConnection();
        this.SqlProAdaptador = new SqlDataAdapter();

        this.SqlProConexion.ConnectionString = Conexion;
        // 
        // SqlProSeleccionar
        // 
        this.SqlProSeleccionar.CommandText = "SELECT     vs_MostrarImgen.*\r\nFROM         vs_MostrarImgen";
        this.SqlProSeleccionar.Connection = this.SqlProConexion;
        // 
        // SqlProAdaptador
        // 
        this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
    
        }
        //Presentar la imagen 
        public void ejcMostrarImg(LogisticaDeAcceso.ColeccionDeDatos Data)
        {
            SqlProAdaptador.Fill(Data.vs_MostrarImgen);
        }
        //Configuracion para conocer el estado actual  
        public void metCofigurarPresentarEsta(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_PresentarEstados";//Nombre del procedimiento almacenado
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NombreCuenta", SqlDbType.VarChar, 30),
            new SqlParameter("@Estado", SqlDbType.VarChar, 30, ParameterDirection.InputOutput, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null)});
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
            // 
      
        }
        public string metActivarPresentarEstad(string Nombre)
        {//Este metodo esta diseñado para que se presente el estado actual de las cuentas cuando los
            //clientes que ingresan el la aplicacion no son de tipo administradores
            SqlProAdaptador.SelectCommand.Parameters["@NombreCuenta"].Value = Nombre;
            SqlProAdaptador.SelectCommand.Parameters["@Estado"].Value ="";
            SqlProConexion.Open();
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();
            SqlProConexion.Close();
            return ((string)(SqlProAdaptador.SelectCommand.Parameters["@Estado"].Value));//el procedimiento devuelve 
            //el valos en un string que representa el tipo de la cuenta
        }
        //Configuracion del nombre del usuario
        public void metConfigurarGetNombre(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // SqlProConexion
            this.SqlProConexion.ConnectionString = Conexion;
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_getNombreUsuario";
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@NomCuenta", SqlDbType.VarChar, 60, ParameterDirection.InputOutput, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null)});
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
        }
        //Activar el nombre del usuario
        public string metActivarGetNombre(string Cuenta)
        {
            SqlProAdaptador.SelectCommand.Parameters["@NomCuenta"].Value = Cuenta;//Recuperar el nombre de la cuenta 
            SqlProConexion.Open();
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();
            SqlProConexion.Close();
            return (string)(SqlProAdaptador.SelectCommand.Parameters["@NomCuenta"].Value);
        }
        //Configuracion para el cambio de estado
        public void metConfigurarEstadoCuenta(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_getEstadoDeCuenta";
            this.SqlProSeleccionar.CommandType = System.Data.CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null),
            new SqlParameter("@Nombre", SqlDbType.VarChar, 120),
            new SqlParameter("@Estado", SqlDbType.VarChar, 30, ParameterDirection.InputOutput, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null)});
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
              }
        //Activar el cambio de estado
        public string metActivarMostrarEstados(string Codigo)
        {
            SqlProAdaptador.SelectCommand.Parameters["@Nombre"].Value = Codigo;//Nomnre de la cuenta 
            SqlProAdaptador.SelectCommand.Parameters["@Estado"].Value = "Estado";//Estado de la cuenta
            SqlProConexion.Open();
            try
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();
            }
            catch (Exception Mensaje)
            {
                MessageBox.Show(Mensaje.Message);
            }
            SqlProConexion.Close();
            return (string)(SqlProAdaptador.SelectCommand.Parameters["@Estado"].Value);
        }
        //Presentacion del propietario con el nombre de la cuenta
        public void metConfigurarMostrarCuentas(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_MostrarCuenta";
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4,ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null),
            new SqlParameter("@Nombre", SqlDbType.VarChar, 30)});
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
        }
        //Mostrar la definicion de la cuenta que se configuro en la parte superior
        public void metActivarMostrarCuentas(LogisticaDeAcceso.ColeccionDeDatos Col,string Nombre)
        {
            SqlProAdaptador.SelectCommand.Parameters["@Nombre"].Value = Nombre;
            SqlProAdaptador.Fill(Col.sp_MostrarCuenta);
        }
    }
}
